#include "Texto.h"

Texto::Texto(void)
{
	m_coordenada=Punto(0,0);
	padre=CIndieLib::Instance();
	padre->FontManager->Add(&r_fuente,"..\\recursos\\font_small.png", "..\\recursos\\font_small.xml",IND_ALPHA, IND_32);
	padre->Entity2dManager->Add(&e_fuente);
	e_fuente.SetFont(&r_fuente);
	e_fuente.SetLineSpacing(18);
	e_fuente.SetCharSpacing(-5);
	e_fuente.SetPosition(m_coordenada.px,m_coordenada.py,10);
	e_fuente.SetAlign(IND_LEFT);
}

Texto::Texto( Punto coordenada )
{
		m_coordenada=coordenada;
		padre=CIndieLib::Instance();
		padre->FontManager->Add(&r_fuente,"..\\recursos\\font_small.png", "..\\recursos\\font_small.xml",IND_ALPHA, IND_32);
		padre->Entity2dManager->Add(&e_fuente);
		e_fuente.SetFont(&r_fuente);
		e_fuente.SetLineSpacing(18);
		e_fuente.SetCharSpacing(-5);
		e_fuente.SetPosition(m_coordenada.px,m_coordenada.py,10);
		e_fuente.SetAlign(IND_LEFT);
}

Texto::Texto( float px,float py )
{
	m_coordenada=Punto(px,py);
	padre=CIndieLib::Instance();
	padre->FontManager->Add(&r_fuente,"..\\recursos\\font_small.png", "..\\recursos\\font_small.xml",IND_ALPHA, IND_32);
	padre->Entity2dManager->Add(&e_fuente);
	e_fuente.SetFont(&r_fuente);
	e_fuente.SetLineSpacing(18);
	e_fuente.SetCharSpacing(-5);
	e_fuente.SetPosition(m_coordenada.px,m_coordenada.py,10);
	e_fuente.SetAlign(IND_LEFT);
}

Texto::~Texto(void)
{
}

void Texto::print( string mensaje )
{
	m_palabra=mensaje;
	const char *o=m_palabra.c_str();
	char *u=(char *)o; //mi cambio de swap entre const y punteros cindi
	e_fuente.SetText(u);
}

void Texto::print( float mensaje )
{
	string s;
	std::stringstream out;
	out << mensaje;
	s = out.str();
	m_palabra=s;
	const char *o=m_palabra.c_str();
	char *u=(char *)o;
	e_fuente.SetText(u);
}

void Texto::print( int mensaje )
{
	string s;
	std::stringstream out;
	out << mensaje;
	s = out.str();
	m_palabra=s;
	const char *o=m_palabra.c_str();
	char *u=(char *)o;
	e_fuente.SetText(u);
}

void Texto::print( double mensaje )
{
	string s;
	std::stringstream out;
	out << mensaje;
	s = out.str();
	m_palabra=s;
	const char *o=m_palabra.c_str();
	char *u=(char *)o;
	e_fuente.SetText(u);
}

void Texto::print( Punto punto )
{
	string temp="X: "+to_string(punto.px)+"\n"+"Y: "+to_string(punto.py);
	print(temp);
}

std::string Texto::to_string( float numero )
{
	string s;
	std::stringstream out;
	out << numero;
	s = out.str();
	return s;
}

std::string Texto::to_string( double numero )
{
	string s;
	std::stringstream out;
	out << numero;
	s = out.str();
	return s;
}

std::string Texto::to_string( int numero )
{
	string s;
	std::stringstream out;
	out << numero;
	s = out.str();
	return s;
}
